/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAOHibernate;

import DAO.LoginDAO;
import entidade.Funcionario;
import entidade.TipoFuncionario;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import org.hibernate.HibernateException;

/**
 *
 * @author thais
 */
public class LoginDAOHibernate implements LoginDAO {

    @Override
    public Funcionario buscarFuncionario(String login, String senha) {
        List<Funcionario> funcs;

        try {
            EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProjetoFinalClientePU");
            EntityManager em = emf.createEntityManager();
            Query buscar = em.createQuery("Select object(c) from Funcionario as c where c.login = ?1 and c.senha = ?2");
            buscar.setParameter(1, login);
            buscar.setParameter(2, senha);
            funcs = buscar.getResultList();
            if (funcs.isEmpty()) {
                return null;
            }
            return (Funcionario) funcs.get(0);
        } catch (HibernateException e) {
            System.out.println("Não foi possível inserir o conf. Erro:" + e.getMessage());
        } finally {
            try {
            } catch (Throwable e2) {
                System.out.println("Erro ao fechar operação de inserção. Mensagem: " + e2.getMessage());
            }
        }
        return null;
    }

    @Override
    public TipoFuncionario buscarTipoFuncionario(Long idTipo) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProjetoFinalClientePU");
        EntityManager em = emf.createEntityManager();
        Query buscar = em.createQuery("Select object(c) from TipoFuncionario as c where c.idTipo = ?1");
        buscar.setParameter(1, idTipo);
        return (TipoFuncionario) buscar.getSingleResult();
    }
}